home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 April / CHIP 1996 aprilis (CD06).zip / CHIP_CD06.ISO / hypertxt.arj / 92 / WIRTH.CD < prev   
Text File  |  1995-09-17  |  29KB  |  488 lines

  1.       @V""A dolgokat nevükön kell nevezni" (Niklaus Wirth)@N
  2.  
  3.           Világos alapelveket követve alakította ki Niklaus  Wirth
  4.       --  a  ""strukturált  programozás  atyja"  --   legfiatalabb
  5.       gyermekét,  az  Oberon  rendszert  is.  A  Borland   Európai
  6.       Szoftverfesztiválján meginterjúvoltuk az egzakt  informatika
  7.       legjelentôsebb tervezôjét.
  8.           @K-- Hogyan értékeli a Borland Európai Szoftverfesztiválja
  9.       @Kalatt a számítógéprôl és kultúráról folyt beszélgetéseket?@N
  10.           --  Nagyon   örülök,  hogy   alkalomadtán  a   technikai
  11.       vonatkozások  is megvitatásra  kerülnek. A  számítástechnika
  12.       kétségtelenül  befolyásolja  a   gazdaságot  és  ezáltal   a
  13.       társadalmat. De  én egy  kissé szkeptikus  vagyok -- szemben
  14.       azokkal  az  emberekkel,  akik  erôsen  beleélik  magukat  a
  15.       jövôrôl alkotott látomásaikba, és a csillagos eget is nekünk
  16.       ígérik. Ami  Minsky úr  vízióit illeti,  az egyetlen tanács,
  17.       amit szerintem adni lehet, és  amit én is követek: nem  kell
  18.       ôt  annyira  komolyan  venni, tekitsük  inkább  úgy,  hogy ô
  19.       játszik.
  20.           Tûnôdjünk el azon, hogy mely területekre hatott igazán a
  21.       számítástechnika. A  tisztán katonai  céloktól eltekintve  a
  22.       kutatásban  lelhetô  fel  a  hatása:  manapság  egészen  más
  23.       eszközeink   vannak  arra,   hogy  természeti   jelenségeket
  24.       kutassunk,  és  ezeket   az  eszközöket  megépítésük   elôtt
  25.       számítógépben szimuláljuk.  Ha olyan  konstrukciókat akarunk
  26.       szimulációval   kipróbálni,   amelyeknek   nincs    egységes
  27.       matematikai  leírása,   akkor  ennek   természetesen  óriási
  28.       elônyei vannak.
  29.           A számítógép további  fontos felhasználási területei  az
  30.       igazgatási  és  bankügyletek,  esetleg  még  a   közlekedési
  31.       eszközök.  De ezeken  a szektorokon  kívül még  nem  nyomult
  32.       annyira elôre a  számítógép, hogy pótolhatatlan  lenne. Sôt,
  33.       néha  az  az  érzésem,   hogy  a  számítógépet  csak   azért
  34.       használják,  mert   ""modern".  Olyan   tevékenységekhez  is
  35.       alkalmazzák,  ahol  a   régebbi  módszerek  is   tökéletesen
  36.       megfelelnének.  Emiatt sok  teljesen felesleges  kötöttségre
  37.       teszünk   szert.   Különösen   akkor   látszik   ez,  amikor
  38.       elveszítjük  az  uralmunkat  a  képernyô  mögötti történések
  39.       felett. Jó, ez  mindenhol így van,  a háztartásban is:  ha a
  40.       hûtôszekrény tönkremegy, akkor hívnunk kell egy szerelôt. De
  41.       egy  hûtôszekrény   sokkal  egyszerûbb   készülék,  és   sok
  42.       hûtôszekrény-szerelô  van. Tehát  nem félünk  attól, hogy  a
  43.       hôségben hûtôszekrény nélkül maradunk.
  44.           Ha azonban a számítógépen nem úgy mûködik valami,  ahogy
  45.       kell,  és bár  legyen ez  csak a  szoftver hibája,  akkor  a
  46.       komputerhasználók 99 százaléka áll  mint szamár a hegyen.  E
  47.       függôséget valószínûleg nem lehet elkerülni, de  tisztáznunk
  48.       kell,  hogy a  számítógépre annyira  nagy szükségünk  van-e,
  49.       hogy vállalnunk kell ezt a függôséget.
  50.           @K--  Kapcsolatban   van  ez   a  függôség   egy  bizonyos
  51.       @Kprogramtípussal,   amely   feleslegessé   teszi,   hogy    a
  52.       @Kfelhasználó is használja a fejét?@N
  53.           -- Minden rendszer sok szintbôl áll. Erre egyszerû példa
  54.       a  következô:  a  munkahelyükön  szövegszerkesztôt  használó
  55.       titkárnôknek  érteniük  kell  a  szövegszerkesztés alapjait.
  56.       Tudniuk kell, hogy a szövegnek milyen a struktúrája ebben az
  57.       alkalmazásban.  A  felhasználónak  tudnia  kell,  hogy  mi a
  58.       szöveg. De azt már nem kell tudnia, hogy a számítógép hogyan
  59.       kezeli  a  szöveget  vagy  azt,  hogy  milyen  az  operációs
  60.       rendszer felépítése. A rendszereink ebben az értelemben  még
  61.       nincsenek elég jól megszervezve.  Ha valami nem megy  jól --
  62.       és ez sajnos gyakran megesik --, akkor a felhasználó ott áll
  63.       tehetetlenül, mivel nem tud a kezelési felület mögé nézni --
  64.       amit  persze  nem  is  szabadna  megtennie.  Ezután  hív egy
  65.       szakembert, akinek többnyire  szintén nincs meg  a szükséges
  66.       tudása, mivel  a programot  esetleg az  USA-ban készítették.
  67.       Egy hûtôszekrénnyel nem történhet ilyesmi, mert a szerelôket
  68.       kiképezték, így minden problémával meg tudnak birkózni.
  69.           @K--  A  szaklapokban ellentét  alakult  ki a  strukturált
  70.       @Kprogramozás (például a Pascal) hívei és az objektumorientált
  71.       @Kprogramozás (például a C++) követôi között. Milyen  szerepet
  72.       @Kjátszik ebben a típusellenôrzés?@N
  73.           -- Én  nem nevezném  ezt ellentétnek.  A Pascal lényeges
  74.       vonása  az  adattípusok  koncepciójának  bevezetése.  Minden
  75.       objektumnak -- legyen  az változó, paraméter,  függvény vagy
  76.       konstans   --    van   egy    típusa,   amely    látható   a
  77.       programszövegbôl.  îgy  a  programozó  ellenôrizheti,   hogy
  78.       ésszerûen kapcsolja-e  össze a  típusokat, a  fordítóprogram
  79.       (compiler) pedig leellenôrizheti azt. A C-ben nincs meg ez a
  80.       tulajdonság,   és   az   assembly   kódban   sincs.   Itt  a
  81.       programozónak  döntenie  kell:   meg  akarom-e  tartani   az
  82.       assembly kód  vagy a  C rugalmasságát,  vagy olyan rendszert
  83.       akarok,  amely  ismeri a  típusokat?  Ebben nincs  ellentét,
  84.       viszont két különbözô osztályról van szó: egy magasabbról és
  85.       egy alacsonyabbról.
  86.           A  típuskoncepció  nagyon  lényeges  dolog.  A  C++  a C
  87.       kibôvítése  objektumorientált  struktúrákkal,  és némiképpen
  88.       meghonosították benne a típuskoncepciót is. De véleményem és
  89.       meggyôzôdésem  szerint   itt  nincs   középút,  hanem   vagy
  90.       használunk típusokat vagy nem.  A C++-ban ez nincs  megoldva
  91.       tisztán.   Fontos,   hogy   a   számítógép   valóban  mindig
  92.       ellenôrizhesse,   hogy   a   típusok   összeegyeztethetôsége
  93.       (kompatibilitása)  teljesül-e. Mindig  az derül  ki, hogy  a
  94.       hibák ott vannak, ahol nem sejtjük ôket. Az Oberon-rendszert
  95.       szinte  teljesen  az  Oberon  nyelven  írtuk,  amely  teljes
  96.       típusokat használ.  Csak egy-két  apróságot írtunk  assembly
  97.       nyelven. Assembly szinten  nincsenek típusaim, tehát  tudom,
  98.       ha hibát követek el, akkor nehéz lesz megtalálni.
  99.           Még egy  szót az  objektumorientáltságról: az  Oberonban
  100.       elkerültük az olyan új fogalmak bevezetését, mint  objektum,
  101.       osztály,  jelentés és  módszer. Megmutatjuk,  hogy ezek  már
  102.       léteznek  az  eljárásokra  épülô  (procedurális) programozás
  103.       világában. Tehát nem lépünk  be egy új világba,  és tévedés,
  104.       hogy   a   megtanult  dolgokat   félre   kell  tennünk.   ùj
  105.       programozási technikákat tanulunk  -- de eddigi  ismereteink
  106.       alapjain.
  107.           Az   objektumorientált    programozás   kiegészült    az
  108.       osztályokkal és alosztályokkal. Az osztályok nálunk típusok.
  109.       Az Oberonnál -- a Pascalhoz  és a Modulához képest --  ehhez
  110.       még hozzájön  a típusok  bôvítésének lehetôsége.  A bôvített
  111.       típus az alosztály.  Minél több tulajdonságot  illesztek be,
  112.       annál  több  korlátozással   kell  számolnom.  Például:   ha
  113.       állatokról beszélek, akkor az a típus, hogy ""állat", nagyon
  114.       általános.  Van  még  az  emlôsállatok  alosztálya, amelynek
  115.       leírásához   néhány,   erre   az   alosztályra  korlátozódó,
  116.       specifikus tulajdonság kell. Nekünk is valami ilyesmink van.
  117.       Az objektumorientált világban az alosztály olyasvalami,  ami
  118.       az eddigi alapokon is lehetséges. A ""típus" egy nagyon régi
  119.       fogalom a matematikában.  Ezzel szemben az  ""osztály" nincs
  120.       ilyen tisztán definiálva.
  121.           @K-- Ezért nevezte  ezt a mechanizmust  ""típusbôvítésnek"
  122.       @Kés    nem   ""örökségnek",    mint   az    objektumorientált
  123.       @Kszóhasználatban?@N
  124.           --   Igen.   Mindig  fenntartással   fogadom   az  olyan
  125.       antropomorf  kifejezéseket,  mint az  ""örökség".  Senki sem
  126.       halt meg.
  127.           @K-- Ön szerint  van generációváltás a  programozók között
  128.       @K--  tehát  van-e olyan  új  generáció, amely  képzettségébôl
  129.       @Kadódóan más fogalmakat használ?@N
  130.           --  Az  új  ötleteket  kétségtelenül  mindig  a fiatalok
  131.       fogadják be  elôször és  viszik át  a gyakorlatba.  Ez már a
  132.       Pascalnál is így volt.  Az öreg rókák gondolkozását  már nem
  133.       lehet  megváltoztatni.   Tíz  évet   fektettek  abba,   hogy
  134.       elsajátítsanak valamit -- és akkor jön valaki, és el  akarja
  135.       tôlem venni azt a gépet, amelynek minden részletét  ismerem.
  136.       Az  embereket  nem   kellene  feltétlenül  új   jelszavakkal
  137.       megnyerni, hanem maradhatnánk  a tárgyilagosság talaján.  Az
  138.       elméleti képzés során kellene  a dolgokat nevén nevezni,  és
  139.       arra  építeni,  amit  már  ismerünk.  A  matematikának nincs
  140.       kereskedelmi háttere. De a számítástechnikában nagyon erôsen
  141.       uralkodnak  a  kereskedelmi  érdekek,  és  az  új gondolatok
  142.       jobban meghallgatásra találnak.
  143.           @K--  Az Oberonban  Ön búcsút  mondott a  programnak és  a
  144.       @Kprogramfutásnak. Helyére modulok és eljárások léptek.@N
  145.           --  Ez  független   a  programozási  nyelvtôl,   itt  az
  146.       operációs  rendszerrôl van  szó. A  kettô között  világos  a
  147.       határ például a Modulában, vagy akár az Adában. Itt a  modul
  148.       egyrészt  egy  olyan  szöveges  egység,  amelyet  a compiler
  149.       egyszerre fel tud dolgozni.  Másrészt a modul a  tevékenység
  150.       egysége. Meg lehet hívni vele egy programot.
  151.           Az  Oberonban  világosan  elkülönítjük  a  fogalmakat: a
  152.       modul  egy szöveges  egység, amelyet  a compiler  mellékesen
  153.       külön  is  feldolgozhat.   De  a  számítógépen   elindítandó
  154.       tevékenységnek nem kell feltétlenül azonosnak lennie  azzal,
  155.       ami  szöveges  egységgel   van  leírva.  Ebben   a  szöveges
  156.       egységben, a modulban ennyi  meg ennyi változó és  annyi meg
  157.       annyi eljárás van, amelyek másutt is felhasználhatók, vagyis
  158.       exportálódnak. Az eljárásokat egyenként meghívhatjuk. Ha  ez
  159.       a  -- néha  igen rövid  -- tevékenység  befejezôdik  egy-két
  160.       ezredmásodpercen belül, akkor újra miénk az ellenôrzés.  ùgy
  161.       is  mondhatjuk,  hogy  mindvégig  egyazon  programon   belül
  162.       vagyunk.
  163.           Ha  ezzel  szemben  elindítok  egy  programot,  akkor  a
  164.       program  belép  egy módba.  Ennek  legjobb illusztrációja  a
  165.       következô: ha egy hagyományos MS-DOS-számítógéppel dolgozunk
  166.       fel  egy  szöveget,  akkor  elôször  belépünk  az  operációs
  167.       rendszerbe,  aztán  meghívjuk  az  EDIT  programot.  Az EDIT
  168.       átvisz  minket  egy  másik,  sajátos  környezetbe,  ahol más
  169.       szabályok érvényesek. Most a  szöveg már nem parancs,  hanem
  170.       valami begépelendô dolog.
  171.           Az Oberonban nincs ilyen.  Nem az egyik módból  lépünk a
  172.       másikba, hanem rövid mûveleteket indítunk, amelyeknek nagyon
  173.       sokféle  lehet  a  hatóereje.  Mûvelet  lehet  egy  karakter
  174.       begépelése vagy egy szó  kiválasztása az egérrel --  valami,
  175.       ami azonnal végbemegy --, de lehet egy szimuláció is,  amely
  176.       24 órán keresztül tart.
  177.           @K-- Az MS-DOS-ban  például különbözô módokban  mozgok. Az
  178.       @KOberonnak ezzel szemben tökéletesen állandó felülete van. Ez
  179.       @Ka koncepció megváltoztatása?@N
  180.           -- Inkább azt mondanám, ez a szervezés  megváltoztatása.
  181.       Ez  egy  másik  tudatot  eredményez  a  használat  során. Ez
  182.       lényegesen hozzájárul az  egyszerûbbé tételhez. A  hozzá nem
  183.       értôk számára  nagyon zavaró  a lépkedés  az egyik  módból a
  184.       másikba.  A felhasználónak  fejben kell  tartania, hogy  hol
  185.       van,  és mi  zajlik az  adott módban.  Mindez most  elmarad.
  186.       Bizonyos értelemben állapotok állnak rendelkezésünkre,  ezek
  187.       azonban mind láthatók és nincsenek elrejtve. Ez  egyszerûbbé
  188.       teszi a használatot.
  189.           @K-- Az asztali  számítógépek operációs rendszereiben  már
  190.       @Kévek óta használnak hasonló kezelési felületeket, például  a
  191.       @KMacintoshon.  Miért  van  most  szükség  más  felületre,  az
  192.       @KOberonra?@N
  193.           -- Vannak  ablakaink is,  amelyek azonban  nem fedik  át
  194.       egymást, bár ez részletkérdés. Az Oberon alapötlete a  Xerox
  195.       @KCedar@N-jától  jött.  Itt  felosztjuk  a  képernyôt, átfedések
  196.       nélkül.  Az  elôugró  (pop-up)  menüknél  sokkal rugalmasabb
  197.       megoldást találtunk, mivel tetszôleges szövegben megadhatunk
  198.       parancsokat. Szöveget outputként is létrehozhatunk, aztán  a
  199.       parancsokat      kijelölhetjük      az      egérrel.       A
  200.       ""levélszekrényembôl" kivehetem  egyik kollégám  jelentését,
  201.       aki  azt  írja  nekem,  hogy  új  parancsokat  készített   a
  202.       rendszerhez.  ï  a  jelentéshez  hozzákapcsolhatja  ezeket a
  203.       parancsokat, s nekem  csak ki kell  jelölni ôket az  egérrel
  204.       ahhoz, hogy kipróbálhassam.
  205.        Elôugró menükre is van lehetôség. Ezeket az egyik csomagban
  206.       használtuk   fel,   és  tool-okként   hozzáférhetôk.   De  a
  207.       szövegekben lévô parancsok rugalmasabbak. Az ikonokat, a kis
  208.       képeket nem használjuk: úgy  gondoljuk, hogy az írás  sokkal
  209.       kifejezôbb, jellemzôbb és  pontosabb. Ha csak  egy keresztet
  210.       és egy fejet látok, akkor többnyire nem tudom pontosan, hogy
  211.       mit jelent. Ezzel szemben  a szövegben ez egészen  világosan
  212.       ki van fejezve. Még egy mellékhatás: a számítógépes világban
  213.       régebben  is és  még ma  is uralkodik  rajtunk a  rövidítési
  214.       mánia,  az összes  betûszóval és  hárombetûs szóval  együtt.
  215.       Ettôl  mi messzemenôen  eltávolodtunk. Mi  kiírjuk a  teljes
  216.       szót  angolul  (vagy  éppen  németül).  A  szavakat  már nem
  217.       gépeljük be, hanem  gyorsan lemásoljuk ôket.  Hiszen valahol
  218.       már megvannak  a dokumentumban.  A begépelés  tulajdonképpen
  219.       alárendelt szerepet játszik, tehát írhatjuk úgy a  szavakat,
  220.       hogy mindig megértsük, mit jelentenek. Ez haladás a kezelési
  221.       felületben, nem pedig a világ gyermeteggé változtatása.
  222.           @K-- ùgy érti, hogy az ikonok gyermetegek?@N
  223.           --  Véleményem  szerint  igen.  Alapjában  nem szeretném
  224.       lebecsülni a  képeket, de  sosem arra  törekedtünk, hogy  az
  225.       óvodások számára készítsünk számítógépes rendszereket, hanem
  226.       olyan emberek számára, akik tudnak olvasni, és megértik azt,
  227.       amit  olvasnak.  Nekem  úgy  tûnik,  hogy  az  ikonok  nem a
  228.       megfelelô utat  jelentik. Egy  bizonyos bonyolultság  felett
  229.       inkább zavarják, mint könnyítik a megértést. Ráadásul ezek a
  230.       díszítmények  elég  költségesek.  Ma  már  alig  lehet olyan
  231.       számítógépet venni,  amelynek 1  Mbyte-nál kisebb  memóriája
  232.       van. És ha  mégis veszünk egy  ilyet, akkor nem  tudunk vele
  233.       mit kezdeni,  mivel a  szoftverek több  Mbyte-ot igényelnek.
  234.       Értesítést  kaptam  egy  kaliforniai  kutatólaboratóriumtól,
  235.       hogy operációs rendszerük új  kiadásával minden gép kap  egy
  236.       memóriabôvítôt. îgy minden gépnek már 64 Mbyte-os  memóriája
  237.       van.   A   mi   rendszerünk   rugalmassága   a  kereskedelmi
  238.       rendszerekéhez hasonló, de nekünk pár száz Kbyte is elég.
  239.           Valóban minden  rendszernek Mbyte-okra  van szüksége  az
  240.       ésszerû   alkalmazásokhoz,   vagy  pedig   képekre   és  más
  241.       felesleges díszítményekre megy el a memória? Érdekes módon a
  242.       vevôk  készek  megfizetni  a  díszítményeket.   Valószínûleg
  243.       azért, mert nem tudják, hogy másképp is lehet.
  244.           @K-- Ön szerint ez csak egy divatjelenség?@N
  245.           -- òvatos vagyok a jóslásokkal. Hiszen nagyon sok  olyan
  246.       ember van, aki szereti  ezeket a dolgokat. A  Windows nagyon
  247.       vonzó megjelenésû. Vannak egymást átfedô ablakok,  különféle
  248.       színek, a háttérben egy szép lány, és így tovább. Ha azonban
  249.       az ember  tényleg meg  akarja ismerni  a számítógépet,  vagy
  250.       dolgozni akar  vele és  nem játszani,  akkor nincs  szüksége
  251.       ilyesmikre.
  252.           @K-- Éppen a számításigényes feladatoknál lenne  kívánatos
  253.       @Kegy folyamatot  a háttérben  futtatni. Ön  azonban az Oberon
  254.       @Kesetében egy  egyprocesszoros multitasking-rendszer  mellett
  255.       @Kdöntött. Miért?@N
  256.           --  Ezáltal   egy  csomó   problémát  távol   tartottunk
  257.       magunktól. Jürg Gutknecht és én találtuk ki, és magunk írtuk
  258.       meg a rendszert. ïrültség, hogy egy kétfôs csapat mellékesen
  259.       készített el  ilyesmit. Volt  más elintéznivalónk  is. Ha  a
  260.       multitaskingot  is beleépítettük  volna, akkor  valószínûleg
  261.       még ma sem lennénk készen. Az szörnyen bonyolítja a  dolgot.
  262.       Számomra úgy tûnik, hogy  egyre inkább az az  irányzat, hogy
  263.       nagy  háttérmunkát  végeztetünk  egy  szerverrel.   Szívesen
  264.       elismerem, hogy ez természetesen nagy pazarlás, mivel a  gép
  265.       állandóan  fut.  Másrészt  ma  már  óriási  feleslegünk  van
  266.       processzor-teljesítménybôl. Szerintem a fejlôdés afelé tart,
  267.       hogy minden folyamatnak  külön processzora legyen.  Hiszen a
  268.       processzorok ma már nagyon olcsók.
  269.           A szerver egy szobában  áll, és egyik feladatot  a másik
  270.       után  hajtja  végre. Ha  valósidejû  (real-time) rendszerrel
  271.       dolgozunk, akkor ez természetesen  nem viselhetô el. De  sok
  272.       más, Oberonban nyújtott dolog sem feltétlenül szükséges.  Az
  273.       nem  járható  út,  ha  ugyanazzal  az  operációs rendszerrel
  274.       akarunk mindenkit optimálisan kielégíteni.
  275.           @K-- Minden alkalmazáshoz más operációs rendszer kellene?@N
  276.           --  Az  a  fogalom is  megingott  kissé,  hogy operációs
  277.       rendszer.  De hát  mi az  Oberonban az  operációs  rendszer?
  278.       Modulok hierarchiája. Filozófiánk azt mondja, hogy lehetôleg
  279.       kevés ilyen modul legyen az alaprendszerben. A  felhasználók
  280.       maguk  építik  fel  saját  hierarchiájukat,  amelyre   éppen
  281.       szükségük van.  Ha például  elindítják a  szövegszerkesztôt,
  282.       akkor automatikusan az ahhoz szükséges modulokból épül fel a
  283.       hierarchia. A többi modul nem marad a memóriában. Az  óriási
  284.       memóriákra  azért van  szükség, mert  sok esetben  a kód  95
  285.       százaléka   egyáltalán   nem   kerül   felhasználásra,    de
  286.       automatikusan az  is bekerül  a memóriába.  Nálunk nem  ez a
  287.       helyzet.
  288.           @K--   Miért   használta   fel   újra   az   Oberonban   a
  289.       @Kszemétgyûjtési (garbage collection) technikát?@N
  290.           --  A  programozók  számára  ezáltal  sok  helyzet válik
  291.       lényegesen egyszerûbbé. A programozó gyakran egyáltalán  nem
  292.       tudja, hogy mikor lesz újra szabad egy foglalt  memóriarész.
  293.       Ha egy szövegszerkesztô elér  egy file-t, akkor az  egérgomb
  294.       megnyomására a file megnyílik. De azt nem tudjuk, hogy mikor
  295.       lesz  újra  szabaddá  téve.  Ezt  a  programozó  sem   tudja
  296.       vezérelni. Hiszen lehet,  hogy más feladatokon  és ablakokon
  297.       keresztül  valahol  hivatkoznak ugyanerre  a  file-ra. Tehát
  298.       szükség   van   egy   központi   irányítóra,   amely   képes
  299.       meghatározni,  hogy él-e  még valahol  hivatkozás a  file-ra
  300.       vagy sem. Ez a szemétgyûjtô (garbage collector). A  memóriát
  301.       teljességében kell irányítani.  Éppúgy, ahogy egy  allokátor
  302.       irányítja a teljes lemezmemóriát.
  303.           @K--   A   szemétgyûjtô   az   Oberon    objektumorientált
  304.       @Kfelépítésének következménye?@N
  305.           --  Igen,  ha  az  ""objektumorientált"  jelzôt  nem   a
  306.       típushoz   kötött  metódusok   sajátos  értelmében   értjük.
  307.       Egyébként  is  hasznos  lenne  használni  a  szemétgyûjtést.
  308.       Minden objektumnak van  típusa, és a  szemétgyûjtônek minden
  309.       esetben   információt   kell  nyújtania   a   típusokról  az
  310.       együttmûködéshez.  Tudnia  kell,  hogy  mi  használható  fel
  311.       szabadon, vannak-e további kapcsolatok és így tovább. Ez nem
  312.       lehetséges     megbízható     típusrendszer     nélkül.    A
  313.       memóriavezérlés így védve  van a lerobbanástól  és könnyedén
  314.       kezelhetô.
  315.           @K--   Mi   a   helyzet   az   egyes   objektumok  közötti
  316.       @Kbiztonsággal? El vannak egymástól szigetelve az  objektumok,
  317.       @Kvagy lehetséges közöttük az együttmûködés?@N
  318.           -- Ez nem lehetséges -- ha az Oberon-nyelvben  maradunk.
  319.       Bizonyos  modulokat  kódolhatunk  assemblyben  is,  de   ezt
  320.       senkinek sem  ajánlom. A  legalsó szinten  az objektumokat a
  321.       hatékonyság   érdekében   assemblyben   programoztuk.  Ettôl
  322.       eltekintve   az    együttmûködés   a    nyelvben   definiált
  323.       csatlakozásokra korlátozódik.
  324.           @K--   Az   Oberon   már   a   negyedik   nyelv,  amelynek
  325.       @Kfejlesztésében Ön irányadó módon vett részt. Miért kutatja a
  326.       @Ktökéletes programozási nyelvet?@N
  327.           -- A programozási nyelv egy formai jelölésmód. Az a szó,
  328.       hogy   ""nyelv"   tulajdonképpen   hibás   megnevezés.   Nem
  329.       Oberonban, nem Pascalban beszélünk, hanem formailag fejezzük
  330.       ki a  programokat. Hogy  miért csinálom  ezt újra  meg újra?
  331.       Tulajdonképpen azért, mert  mérnökként mindig is  érdekelt a
  332.       számítógépes rendszerek, operációs rendszerek, compilerek és
  333.       grafikai  rendszerek   létrehozása.  És   tanárként  nemcsak
  334.       rendszereket  akarok  készíteni,  hanem  meg  akarom   tudni
  335.       jeleníteni  és   magyarázni  ôket.   Ezért  érthetôen   kell
  336.       dokumentálni ezeket, olyan absztrakt módon, amely  világosan
  337.       megfogalmazott szabályokon nyugszik. Ezért égetô szükség van
  338.       egy alkalmas formarendszer létrehozására.
  339.           Korábban nem volt ilyen, vagy legalábbis nem volt az  én
  340.       számomra kielégítô formarendszer. 1960-ban láttam  munkához.
  341.       A Fortran kétségtelenül nem volt kielégítô, az assembly  kód
  342.       még  kevésbé   volt  az.   Az  ezt   követô  harminc   évben
  343.       fejlesztéseink sokkal  bonyolultabbá és  sokszínûbbé váltak.
  344.       Az  általam  definiált  nyelvek  ugyanis  nem  különülnek el
  345.       egymástól,  hanem fejlôdési  sort képeznek.  Az Algol  W-vel
  346.       kezdtem, aztán következett a Pascal, a Modula, majd pedig az
  347.       Oberon. A Pascalban a lényeges többletet az adatstrukturálás
  348.       jelentette, a  Modulában a  modulok használata  és talán  az
  349.       információrejtés, az Oberonban pedig a típusfogalom teljessé
  350.       tétele és a típusbôvítés.
  351.           @K-- Mi következik az Oberon után?@N
  352.           -- Nem akarom ebben  az irányban folytatni a  munkát. Az
  353.       embernek  valahol  meg  kell húznia  a  határt.  Ez nem  azt
  354.       jelenti,   hogy  teljesen   el  akarok   fordulni  ettôl   a
  355.       területtôl.  Most  a  párhuzamos  rendszerek  és  az osztott
  356.       rendszerek jelentenek  számomra kihívást.  Ezen a  területen
  357.       még  nem  találták  meg az  ideális  formarendszert.  És nem
  358.       totális  forradalom  várható,  hanem  fontos   elôrelépések.
  359.       Elôször a valóban alapvetô formai rendszert kell kidolgozni,
  360.       ami sok problémát vet fel.
  361.           @K-- Melyek ezek a problémák?@N
  362.           -- Természetesen  már sok  osztott rendszer  létezik, de
  363.       ezek barkácsmunkák. Nem lehet bennük assemblyben vagy  C-ben
  364.       programozni,  ahogy  az  általában  szokásos.  Nem  olyan  a
  365.       szituáció, ahogy  egy tudós  le szeretné  írni egy könyvben,
  366.       hanem   meg   kell   fejteni   a   titokzatos,   szövevényes
  367.       programszövegeket.  Én  szeretném  világosan  megmutatni   a
  368.       koncepciókat,  és  csak  azután  megmutatni,  hogy  hol kell
  369.       bôvíteni.  Nem  pedig  fordítva.  Ha  Önök  egyszer megnézik
  370.       ezeket   a   C-ben   írt   programszöveg-útvesztôket,  akkor
  371.       belátják,  hogy  valóban  pokoli  nagy  feladat  kitalálni a
  372.       lényeget. Kivéve akkor, ha pont ott van a szerzôjük.
  373.           @K-- Mi a véleménye a Smalltalkról?@N
  374.           --  A   Smalltalkkal  1976/77-ben   ismerkedtem  meg   a
  375.       Xeroxnál. Számomra egyszerûen  nem volt tiszta  nyelv. Nincs
  376.       matematikai alapokon megmagyarázható, világos koncepciója. A
  377.       Smalltalk kézikönyve körülbelül  négyszáz oldalas --  ez már
  378.       jelzi, hogy valami nem stimmel. A Smalltalkkal mint nyelvvel
  379.       csak rossz tapasztalataim  vannak. De ez  a nyelv emelte  ki
  380.       elôször az  objektumorientált megközelítésmódot,  ami valódi
  381.       többletet jelentett. Ez egyébként rejtve már a Simulában  is
  382.       benne volt. A Smalltalk az egymást átfedô ablakai miatt vált
  383.       ismertté.
  384.           A Smalltalkot a kezelési  felülete tette híressé, s  nem
  385.       maga a  nyelv. Akkor  óriási hatással  volt rám,  de ma  már
  386.       tudjuk,  hogy  ezek a  technikák  átvihetôk tetszôleges  más
  387.       programnyelvekbe.
  388.           Számomra nem tûnik hatékonynak egy olyan nyelv, amelyben
  389.       mindent  objektumorientáltan   kell  megcsinálni   (ilyen  a
  390.       Smalltalk). A  következô példát  mindig szívesen  hozom fel:
  391.       megtanultuk,  hogy   összeadhatunk  két   egyenjogú  számot:
  392.       3+4=4+3. Ez a  kommutativitás törvénye. Azonban  a Smalltalk
  393.       objektumorientált  világában  el  kell  döntenünk,  hogy   a
  394.       ""3"-at objektumnak tekintjük, és küldünk neki egy üzenetet,
  395.       hogy ""Adj hozzá önmagadhoz négyet". Tehát ""három",  ""+4".
  396.       A  ""négy",  ""+3" mûveletet  (ami  ugyanazt eredményezi,  a
  397.       kommutativitás miatt),  Smalltalkban egy  másik objektum,  a
  398.       ""négy",  és  egy  másik  üzenet,  a  ""+3"  valósítja  meg.
  399.       Smalltalkban nincs kommutativitás.
  400.           Sok jó és megalapozott ok van arra, hogy miért nem lenne
  401.       jó   félretolni   a   matematikát.   Az    objektumorientált
  402.       programozásban      viszont      néha       rákényszerülünk.
  403.       Objektumorientált  technikákra  van  szükségünk  a  kezelési
  404.       felületeknél -- de nem mindig és mindenütt.
  405.           @K--  Åt  lehet   vinni  az  operációs   rendszer  nélküli
  406.       @Kcompilert egy másik operációs rendszerre?@N
  407.           -- Az Oberon  csak akkor nyújtja  valódi lényegét, ha  a
  408.       teljes rendszert implementáljuk. Különben nem sok  választja
  409.       el a Modulától. Akkor már nem éri meg a fáradságot. A háttér
  410.       is   idetartozik:    nyelv   és    rendszer   --    központi
  411.       memóriavezérlôvel.
  412.           @K--  Alkalmassá  tehetô  a  teljes  rendszer kereskedelmi
  413.       @Kforgalmazásra?@N
  414.           -- Igen,  úgy, hogy  egy meglévô  rendszerre építjük. Az
  415.       egyetlen hátránya az, hogy a régi operációs rendszert még  a
  416.       központi   memóriában   kell   tartani.   Az   Oberon    nem
  417.       használhatja,  békén  hagyja ezt  a  memóriarészt. Ezenkívül
  418.       azonban nincs más hátrány.
  419.           @K--  Milyenek  voltak  a  kollégák  és  a  számítógépipar
  420.       @Kvisszajelzései?@N
  421.           --  Az ipar  eddig alig  mutatott érdeklôdést.  Svájcban
  422.       egyáltalán  nem,  hiszen  ott  aligha  lehet komputeriparról
  423.       beszélni. Fô célunk az, hogy új ötleteket mutassunk be.  Nem
  424.       akarjuk feltétlenül  világszerte elterjeszteni  a rendszert.
  425.       Szép   lenne,  ha   ez  megtörténne,   de  ez   csak   mások
  426.       közremûködésével lehetséges. Nekünk ugyanis nincs cégünk, és
  427.       nincs  is  közvetlen  hasznunk  belôle.  Pusztán  az ötletet
  428.       tudjuk terjeszteni.
  429.           @K-- És milyenek voltak a visszajelzések?@N
  430.           --  Talán még  túl korai  lenne ezt  megítélni. Még  nem
  431.       érkezett sok visszajelzés. A legtöbben lelkesek az ötlettôl,
  432.       de a legtöbb kritikát teljesen jelentéktelen dolgok  kapták.
  433.       Kaptunk  nagyon  konstruktív megjegyzéseket  is.  Hiszen kit
  434.       érdekel egy új  operációs rendszer, függetlenül  attól, hogy
  435.       jó, rossz vagy szuperjó  vagy tartalmaz-e új ötleteket?  Épp
  436.       ellenkezôleg, az új ötletek néha akaratlanul jönnek,  amikor
  437.       valami újat kell tanulni.
  438.           @K--  De  mindenki tudja  a  meglévô operációs  rendszerek
  439.       @Khiányosságait.@N
  440.           --  Az  emberek azonban  nem  változnak. Megtanulják  az
  441.       MS-DOS-t,  és   ennyi  az   egész.  A   továbblépést  erôsen
  442.       akadályozza  a  megszokás   hatalma.  Ezért  lenne   jó,  ha
  443.       mindenekelôtt az egyetemek  segítenének megismertetni az  új
  444.       ötleteket. A Borland ezt tette a Pascallal.
  445.           @K-- Melyek  voltak a  lényeges változások  eddigi munkája
  446.       @Ksorán?@N
  447.           --  Az  egyik  fordulópont  1976/77-ben  volt,  amikor a
  448.       Xeroxnál   láttam   a   személyi   munkaállomásokat.   Akkor
  449.       elhatároztam, hogy itt  Zürichben építek egy  munkaállomást.
  450.       Másik  fordulópont  volt számomra  a  hardver irányába  való
  451.       eltolódás és egy olyan rendszer koncepciója, amelynek  közös
  452.       a hardvere és szoftvere.
  453.           A programnyelvek mindig úgymond mellékesen fejlôdtek ki.
  454.       Sosem  mondtam azt,  hogy most  kifejlesztem a  Modula--2-t,
  455.       hanem a Modula--2 vált szükségessé, mivel kellett egy  nyelv
  456.       a Lilith rendszerhez. Vagy  az Oberonra volt szükség,  mivel
  457.       kellett  egy  nyelv  az  Oberon  rendszerhez.  Elôször ugyan
  458.       Modulában  akartuk  megírni, de  aztán  láttuk, hogy  valami
  459.       egészen  lényeges  hiányzik:   a  teljesebb  típusok   és  a
  460.       típusbôvítés.  Egy  nyelv  kifejlesztése  sohasem  volt   az
  461.       elsôdleges célunk.
  462.  
  463.       @KAz interjút Robert Grimm és Eva Weber készítette.@N
  464.  
  465.  
  466.       @VNiklaus Wirth@N
  467.  
  468.           Niklaus   Wirth   az   egyik   legjelentôsebb    európai
  469.       informatikus.  Az általa  kifejlesztett Pascal  programnyelv
  470.       döntô hatással volt a modern programozók munkastílusára.
  471.           A   svájci   származású   tudós   1958-ban   fejezte  be
  472.       villamosmérnöki  tanulmányait a  zürichi Szövetségi  Mûszaki
  473.       Fôiskolán,  és  két  évvel  késôbb  Kanadában  a  tudományok
  474.       doktora lett.  Wirth 1963-ban  szerezte meg  bölcsészdoktori
  475.       címét a híres  kaliforniai Berkeley Egyetemen.  Négy további
  476.       évig  tanított  segédprofesszorként  a  kaliforniai Stanford
  477.       Egyetemen.  Ott  fejlesztette  ki  a  PL360  és  az  Algol W
  478.       programnyelveket. Wirth  professzor 1968-ban  átszerzôdött a
  479.       zürichi  ETH  intézetbe,  ahol  kidolgozta  a  Pascalt  és a
  480.       Modulát. Az  elmúlt öt  év során  Niklaus Wirth  -- intézeti
  481.       kollégájával, Jürg Gutknechttel együtt -- kifejlesztette  az
  482.       Oberon rendszert.
  483.  
  484.           @VIrodalom:@N Martin Reiser:  The Oberon System.  User Guide
  485.       and Programmer's Manual (Az Oberon-rendszer. Felhasználói és
  486.       programozói  kézikönyv).  Kiadó:  Addison-Wesley  Publishing
  487.       Company, 1991.
  488.